草庐IT

objective-c - Xcode 和 XIB 自文档

全部标签

c++ - 来自 Xcode 8.3.2 : Non-portable path to file - specified path differs in case from file name on disk 的错误警告

出于某种原因,我的代码库突然开始收到数以千计的此类警告。但到目前为止,所有有问题的文件和路径都是完全正确的,与我在磁盘上看到的与Finder相匹配。他们是不是在暗地里另有幕后?当问题实际上并不存在时,为什么Xcode会生成这些警告?尽管http://stackoverflow.com/questions/43067017/non-portable-path-to-file-file-h-specified-path-differs-in-case-from-file-na是关于相同的警告,在这种情况下我已经验证导入路径与磁盘上的文件名匹配。 最佳答案

c++ - 为什么这个来自Objective-C++的dynamic_cast调试成功但发布失败?

我在最新版本的Xcode(撰写本文时为9.4.1)中构建了一个C++框架,我再次在Xcode中从Objective-C++代码中使用它。我需要执行从一种指针类型到另一种指针类型的dynamic_cast。但是,dynamic_cast仅适用于调试版本,不适用于发布版本。关于dynamic_cast在Objective-C++中的工作方式,我是否缺少或理解导致此示例失败的某些内容?C++框架TestClass.hppclassParent{public://https://stackoverflow.com/a/8470002/3938401//musthaveatleast1virtu

c++ - 使用 static_assert 检查 Q_OBJECT 宏

如果我得到的类型声明不包含Q_OBJECT宏,我有一些有趣的需要显示编译错误。我发现了一种不好的方法。实际上它重复了Qt开发人员的想法来做同样的事情:templatevoidcheckForQObjectMacro(){reinterpret_cast(0)->qt_check_for_QOBJECT_macro(*reinterpret_cast(0));}这很好用,但确实给出了奇怪的错误消息。我想显示一条可读的消息。一种方法是使用static_assert构造。但我不知道如何实现Q_OBJECT宏存在的静态验证条件。也许有人可以提出一个漂亮的黑客?也非常感谢任何想法。

c++ - 如何在 Xcode C++ 中更改编译器

我已经搜索了很长时间,但似乎无法找到如何在最新的Xcode上更改编译器。我不确定当前设置的是什么,但如果可能的话,我想将其更改为GCC。现在我的家庭作业示例无法识别ptrace.h,所以我认为这可能与所选的编译器有关。 最佳答案 构建规则截图:可以为C++添加规则,点击“自定义”右边的“+”。 关于c++-如何在XcodeC++中更改编译器,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

c++ - CMake,选择Xcode编译器

我知道直到最近还无法为CMake生成的xcode项目选择任何特定的编译器(它总是选择xcodes默认编译器)。无论如何这篇文章:http://cmake.3232098.n2.nabble.com/CMake-2-8-1-available-for-download-td4752230.html让我相信现在应该可以使用特定的CMAKE_XCODE_ATTRIBUTE_标志。-不幸的是,我既找不到应该更改xcodes编译器的标志,也找不到CMake支持的所有xcode标志的列表。我正在使用Xcode4.2和CMake2.8.6,我希望能够在CMake中在LLVM3.0和LLVMGCC4.

c++ - 是否在定义明确的非构造 "object"上调用非虚拟成员函数?

这个问题在这里已经有了答案:WhatwillhappenwhenIcallamemberfunctiononaNULLobjectpointer?[duplicate](6个答案)Whendoesinvokingamemberfunctiononanullinstanceresultinundefinedbehavior?(2个答案)关闭8年前。在构造函数中,允许调用非虚拟成员函数。根据这个事实是否可以得出以下代码段是明确定义的?structA{voidfoo{std::coutfoo();回答?借助评论中给出的一些链接以及链接页面中给出的链接,我现在认为可以找到答案,例如在http:

c++ - Xcode 无法停止正在运行的任务

当我在Xcode中运行C++程序时出现问题。总是有一个session说Debugxxx,但这无法停止。代码没有问题。这里是一些截图: 最佳答案 我也遇到过这个问题,我有几件事可能会奏效。请注意,这些不是错误修复,而是解决方法-它们可能不适用于您的情况。但是,我希望他们这样做...按顺序尝试...点击(上栏)->产品->停止,尽管您可能已经尝试过。单击(上栏)->产品->清洁。这可能会停止错误的任务。退出Xcode并重新打开。根据我的经验,这几乎总是会停止“正在运行”的任务。虽然我不需要走到这一步,但强制退出XCode(command

c++ - 2 个重载具有相似的转换 - 内置运算符 integer[pointer-to-object]

我有以下类(class):classDictionaryRef{public:operatorbool()const;std::stringconst&operator[](std::stringconst&name)const;//...};然后我尝试使用它:DictionaryRefref=...;ref["asdf"];//error输出提示两个重载,但只列出一个:1>...:errorC2666:'DictionaryRef::operator[]':2overloadshavesimilarconversions1>...:couldbe'conststd::string&D

c++ - 我可以在编译和链接时将 C++ 主函数和类与 Objective-C 和/或 C 例程分开吗?

我有一个小型C++应用程序,我导入了Objective-C类。它作为Objective-C++文件.mm工作,但任何包含header的C++文件可能最终包含一些Objective-Cheader,必须重命名为.mm扩展名以用于正确的GCC驱动程序。有没有办法为Objective-C类编写一个纯C++包装器,或者我能否以某种方式将Objective-C对象分离出来,然后单独链接它们?也许即使Objective-C类成为一个小库,我也可以在编译时静态重新链接?问题在于这段代码是跨平台的,在通常不使用Objective-C的系统(即非Mac)上编译起来比较困难。尽管预处理器命令限制了Obje

c++ - Objective-C 稳定的 ABI

我主要是一个C++人。由于C++缺少官方ABI,我总是使用类似COM的方法来设计支持多个编译器的组件。最近我遇到了一个问题,即Objective-C是否会替代类COM方法。显然,要让Objective-C成为替代品,需要一个稳定的ABI,因此我想知道是否存在用于Objective-C的稳定ABI(在所有主要操作系统[OSX、GNU/Linux、Windows]上)以及它有多容易它将使用Objective-C(++)作为不同编译器创建的组件之间的“粘合剂”。编辑:正如NikolaiRuhe指出的那样,对COM的简短描述可能会有所帮助。COM本质上是一种“二进制标准”,允许混合不同编译器(